/**
 * 排序从球员队列的最左边开始。在记录本上记录下最左端球员的身高，并把紫红色毛巾放在这个队员面前。于是开始用下一个球员的身高和记录本上的记录值进行比较。如果这个队员更矮，则划掉第一个球员的身高，记录下第二个队员的身高；同时移动毛巾，把它放在这个新的“最矮的”（当前的）队员勉强。继续沿着队列走下去，每一个队员都和记录本上的最小值进行比较。当发现更矮的队员时，就更新记录本上的最小值并且移动毛巾。做完这些事情后，毛巾就会落在最矮的队员面前。
 */
;(function(window, document){
	window.SelectSort = {
		sort: function(pArrDatas){
			this._orgiArrDatas = pArrDatas;
			this._datas = pArrDatas.concat();

			this._swapCount = 0;
			this._totalCount = 0;

			var ln = this._datas.length;
			document.open();
			document.write('<h1>Select Sort</h1>');
			var t1 = new Date();
			for( var i= 0; i<ln; i++){
				this._minIdx = i;
				this._minValue = this._datas[i];
				for(var j=i; j<ln; j++){
					this._totalCount++;
					if( this._datas[j] < this._minValue ){
						this._minValue = this._datas[j];
						this._minIdx = j;
					}
				}
				if( this._minIdx != i ){
					var tmp = this._datas[this._minIdx];
					this._datas[this._minIdx] = this._datas[i];
					this._datas[i] = tmp;
				}
			}
			document.write('<p>用时：'+ ( new Date() - t1 )+'ms</p>');
			document.write('<p>共执行'+this._totalCount+'次</p>');
			document.write('<p>共交换'+this._swapCount+'次</p>');
			document.write('<p>排序结果：[' + this._datas.join(', ') + ']</p>');
			document.close();
		}
	};
})(window, document);